package com.molichuxing.gateway.bff.car.services;

import com.molichuxing.framework.dto.Paged;
import com.molichuxing.framework.exception.BizException;
import com.molichuxing.gateway.bff.car.entity.request.create.AccidentCaseCreateBffVo;
import com.molichuxing.gateway.bff.car.entity.request.create.AccidentCreateBffVo;
import com.molichuxing.gateway.bff.car.entity.response.*;

import java.util.List;

/**
 * @Author: renzhengyu
 * @Description: 事故bff
 * @Date: Created in 15:08 2019/9/19
 * @Modified By:
 **/
public interface AccidentBffService {

    /**
     * 事故列表
     * @param resultType 1:用车中数据（该字段不传值默认为1）  2:查看历史数据 
     * @param pageNum
     * @param pageSize
     * @return
     */
    Paged<AccidentPagedVo> getCarAccidentAppPage(Integer resultType, Integer pageNum, Integer pageSize) throws Exception;

    /**
     * 事故报备详情
     * @param accidentId
     * @return
     * @throws Exception
     */
    AccidentDetailVo getAppAccident(Integer accidentId)throws Exception;

    /**
     * 结案报备详情
     * @param accidentId
     * @return
     * @throws Exception
     */
    AccidentCaseDetailVo getAccidentCaseDetail(Integer accidentId)throws Exception;

    /**
     * 查询用户所有在用车中的车辆信息
     * @return
     * @throws Exception
     */
    List<AccidentOrderCarInfoVo> getLicencePlateByUser()throws Exception;

    /**
     * 创建事故报备信息
     * @param accidentCreateBffVo
     * @return
     */
    Boolean createAccidentCreateBff(AccidentCreateBffVo accidentCreateBffVo)throws Exception,BizException;

    /**
     * 创建结案信息
     * @param accidentCaseCreateBffVo
     * @return
     */
    Boolean createAccidentCaseCreateBff(AccidentCaseCreateBffVo accidentCaseCreateBffVo)throws Exception,BizException;
}
